NFS5 CRP Model Filter


Documentation: Basic Filter Usage

Date: April 28, 2005
Author: Arushan

Version Information

The contents of this document have been verified to work with the CRP Filter version 1.0RC1 (and possibly newer versions as well).

Getting Started

Normal Parts

  • Named in the format of A_B
  • where A = the part type (case insensitive):
    • body
    • hood
    • trunk
    • interior
    • doorL
    • doorR
    • wheelFL
    • wheelFR
    • wheelRL
    • wheelRR
    • steer
  • and B = just any other text to resolve naming conflicts
  • Make sure you flip the model on the Z axis for NFS4 cars
  • Make sure that the bottom of the wheels are at Y=0
  • Parts not named properly will be considered to be "body"
  • Local axis at rotation point for wheels/doors/hood/trunk
  • Seperate all window parts, and try to have many parts with fewer polygons rather than few parts with many polygons each.
  • Map each part to a material, the entire part will have the same material, so remember to detach!

Damaged Parts

  • Prefix normal part with a #. (i.e. normal part named: PartA, damage part would be named #PartA)
  • Same number of polygons/vertices as normal part and in the same order
  • Design normal part first then duplicate and modify for damage
  • Has not been tested extensively, so results are not guranteed.

Bounding Planes

  • Used for collision detection with the world
  • Needs to start with a ~
  • Must be a part with 4 vertices/2 triangles
  • Needs to be on the same plane otherwise, results will be bad.
  • Atleast a bottom bound plane is required, otherwise car will "fall" below the track
  • Also recommended to create plane for the hood and trunk and/or spoiler (test flipping the car in game)

Materials

  • One material per part -- the filter only looks at the material of the first face in each part.
  • Named in a format of A or A_B or A_B_C
  • where A is the material type:
    • Ext = exterior (no shine)
    • ExtEnv = exterior with environment mapping (shines)
    • Int
    • Wheel
    • Window
  • and B is the tpg index according the tpg file (if not a integer, then it will be ignored and default to 1)
  • and C is anything you want to help you identify the material
  • Incase A is not named properly, it will default to ExtEnv
  • Ideally all the shiny parts of the car should be mapped to ExtEnv, the non shiny (including the underside) to Ext and the interior parts (including insides of doors) to Int. The tires and the all windows should be mapped to Wheel and Window repectively.

Textures

  • In the same output folder where you export your car to, you need to put the textures as EA SHAPE (FSH) files.
  • If you export file is named as "mycar.crp", then the fsh files need to named as "mycar_xx.fsh", where xx = 00, 01, 02, 03, etc
  • Note: 00 is actually texture 1 in the tpg file, and so forth.
  • General guidelines for textures:
    • 00 - exterior texture
    • 01 - interior texture
    • 02 - wheel texture
    • 03 - glass texture
  • Need to edit the tpg file and also reference the correct tpg index in the part Material to get proper texture.
  • No size restrictions on textures except for graphics card limit. To resize texture, you must edit the internal structure of the Fsh file entry, i.e. through fshtool's "index.fsh" or even create a new fsh from scratch with 32bit texture structure using FshEd or EA Graphics Editor. Such a change also needs to be reflected in the tpg file.

Texture Page (TPG files)

  • A somewhat outdated guide: http://erix.nfsunlimited.net/tpg.html
  • A tpg file is similar to a standard Windows ini configuration file: The data is broken up into sections Each new section begins with [name] where name is the section name Each key-value pair is of the form: key=value
  • Things to forget about (i.e. remove from your own tpg file):
    • Sections like [fileX.YYY] where YYY is not "details" and Key-value data in such sections. You only need to keep such data if you are going to be using multiple textures in a single fsh file.
    • Inside [styleX] sections, all geometryX, typeX and textureX key-value data can be deleted since the filter doesnt support exporting as a different type. Therefore, this is simply enough:
      [styleX]
      name=Style.Name.From.Original.Car
      count=0

Copyright © 2003-2005, Arushan / AruTec. All Rights Reserved.